using Microsoft.SqlServer.Management.Sdk.Sfc;
using System;

namespace Microsoft.SqlServer.Management.SqlManagerUI.Scripting
{
	internal class ScriptingProgressEventArgs : EventArgs
	{
		private Urn current;

		private int total;

		private int count;

		private string message;

		private Microsoft.SqlServer.Management.SqlManagerUI.ObjectInfo _objectInfo;

		private ProgressEventType _eventType;

		private ScriptActions _action;

		public ProgressEventType EventType
		{
			get
			{
				return this._eventType;
			}
		}

		public Urn Current
		{
			get
			{
				return this.current;
			}
		}

		public int Count
		{
			get
			{
				return this.count;
			}
		}

		public int Total
		{
			get
			{
				return this.total;
			}
		}

		public string Message
		{
			get
			{
				return this.message;
			}
		}

		public ScriptActions ScriptAction
		{
			get
			{
				return this._action;
			}
		}

		public Microsoft.SqlServer.Management.SqlManagerUI.ObjectInfo ObjectInfo
		{
			get
			{
				return this._objectInfo;
			}
		}

		public ScriptingProgressEventArgs(Urn current, int count, int total)
		{
			this.current = current;
			this.count = count;
			this.total = total;
		}

		public ScriptingProgressEventArgs(Microsoft.SqlServer.Management.SqlManagerUI.ObjectInfo objectInfo, ScriptActions action)
		{
			this._objectInfo = objectInfo;
			this._action = action;
			this._eventType = ProgressEventType.WritingObject;
		}

		public ScriptingProgressEventArgs(ProgressEventType eventType, string message)
		{
			this._eventType = ProgressEventType.WritingObject;
			this.message = message;
		}

		public ScriptingProgressEventArgs(Urn current, int count, int total, string message) : this(current, count, total)
		{
			this.message = message;
		}

		public ScriptingProgressEventArgs(Urn current, int count, int total, string message, bool isInformation) : this(current, count, total)
		{
			this._eventType = ProgressEventType.ObjectInformation;
			this.message = message;
		}
	}
}
